package edu.biwu.mapper;

import edu.biwu.po.Product;
import edu.biwu.vo.QueryVo;
import org.apache.ibatis.annotations.Param;

import java.util.HashMap;
import java.util.List;

public interface ProductMapper {

    Product selectByPid(int pid);

    List<Product> selectByCategory(String category);

    //多参数 包装类 参数就是內部对象.变量名 例如 product.price
    List<Product> selectByCondition(QueryVo queryVo);

    //多参数 HashMap 参数就是map中的key  通过key取出值 例如:map.get("price")
    List<Product> selectByMap(HashMap<String, Object> map);

    //多参数 参数是多个  每个参数前面加注解@Param("参数名")   sql 语句中#{参数名} 要与注解的参数名一致 形成绑定
    List<Product> selectByParams(@Param("ProductPrice") double price,@Param("ProductCategory") String category);

    //多参数 HashMap 注解中的condition相当于 map sql语句中使用时 直接condition.变量名 例如: #{condition.price} 底层是map.get("price")
    List<Product> selectByMapParams(@Param("condition")HashMap<String,Object> map);

    int selectByCount();

    List<Product> selectByResultMap(String category);
}
